package com.xuzm.netty.operator;

import com.xuzm.netty.dto.RunDataDto;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Date;

@Component
@Slf4j
public class ServerHandlerRemoveOperator extends ServerHandlerOperator{

    @Override
    public void exec(ChannelHandlerContext ctx, Object obj) {
        // 这里的obj为空
        // TODO: 2024/7/11 客户端断开时间
        String addr = getClientAddr(ctx);
        log.info("------断开连接，地址 {}-----", addr);
        RunDataDto runDataDto = getDtoMap().get(addr);
        if(runDataDto != null){
            runDataDto.setCloseTime(new Date());
            runDataDto.setCurrentStatus(RunDataDto.Status.DOWN_LINE.getCode());
        }
        // 离线记录
        DOWN_ADDR.add(addr);
    }
}
